package cn.iocoder.yudao.module.dbit.controller.admin.onlineresumesinfo.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

@Schema(description = "管理后台 - 在线简历信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class OnlineResumesInfoRespVO {

    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer id;

    @Schema(description = "userId", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer userId;

    @Schema(description = "姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @NotEmpty(message = "姓名不能为空")
    private String name;

    @Schema(description = "性别", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "性别不能为空")
    private String gender;

    @Schema(description = "出生日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "出生日期不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthday;

    @Schema(description = "联系电话", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "联系电话不能为空")
    private String phone;

    @Schema(description = "电子邮箱", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "电子邮箱不能为空")
    private String email;

    @Schema(description = "地址")
    private String address;

    @Schema(description = "学校", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "学校不能为空")
    private String school;

    @Schema(description = "专业", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "专业不能为空")
    private String major;

    @Schema(description = "毕业时间(届)", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "毕业时间(届)不能为空")
    private String graduationDate;

    @Schema(description = "求职意向", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "求职意向不能为空")
    private String jobObjective;

    @Schema(description = "项目名称")
    private String projectName;

    @Schema(description = "项目起始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate projectStartDate;


    @Schema(description = "项目结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate projectEndDate;

    @Schema(description = "项目介绍，描述项目的背景、目标和成果等", example = "你猜")
    private String projectDescription;

    @Schema(description = "个人职责")
    private String personalResponsibilities;

    @Schema(description = "技能证书")
    private String skillsAndCertificates;

    @Schema(description = "自我评价")
    private String selfEvaluation;

    @Schema(description = "兴趣爱好")
    private String interestsAndHobbies;

    @Schema(description = "语言能力")
    private String languageAbility;

    @Schema(description = "其他信息，如实习经历、社团活动、志愿者经历等，有助于求职的信息")
    private String otherInformation;

    @Schema(description = "是否默认简历 1是2否")
    private Integer defaulted;

}